class Buffs(object):
    
    STATS_BUFF_MULTIPLIER = 1.05
    AP_BUFF_MULTIPLIER = 1.1
    IAS_BUFF_MULTIPLIER = 1.1
    PHSICAL_VULNERABILITY_MULTIPLIER = 1.04
    SPELL_VULNERABILITY_MULTIPLIER = 1.05
    SPELL_HASTE_BUFF_MULTIPLIER = 1.05
    CRIT_BUFF_MODIFIER = .05
    MASTERY_BUFF_MODIFIER = .05
    
    FOOD_VALUE_AGILITY = 300.0
    FLASK_VALUE_AGILITY = 1000.0
    
    POTION_VALUE_AGILITY = 4000.0
    POTION_LAST_TIME_AGILITY = 25.0
    
    def __init__(self, stats, ap, ias, spell_has, crit, mastery, 
                 weaken_armor, sharttering_throw, phys_vuln, spell_vuln,
                 bloodlust, crit_damage, flask, food, potion, pre_pot):
        self.stats = stats
        self.ap = ap
        self.ias = ias
        self.spell_has = spell_has
        self.crit = crit
        self.mastery = mastery
        self.weaken_armor = weaken_armor
        self.sharttering_throw = sharttering_throw
        self.phys_vuln = phys_vuln
        self.spell_vuln = spell_vuln
        self.bloodlust = bloodlust
        self.crit_damage = crit_damage
        self.flask = flask
        self.food = food
        self.potion = potion
        self.pre_pot = pre_pot
        
        
    def get_ias_buff_multiplier(self):
        if self.ias:
            return self.IAS_BUFF_MULTIPLIER
        else:
            return 1
        
    def get_spell_haste_buff_multiplier(self):
        if self.spell_has:
            return self.SPELL_HASTE_BUFF_MULTIPLIER
        else:
            return 1
        
    def get_stats_buff_multiplier(self):
        if self.stats:
            return self.STATS_BUFF_MULTIPLIER
        else:
            return 1
        
    def get_ap_buff_multiplier(self):
        if self.ap:
            return self.AP_BUFF_MULTIPLIER
        else:
            return 1
        
    def get_mastery_buff_modifier(self):
        if self.mastery:
            return self.MASTERY_BUFF_MODIFIER
        else:
            return 0
        
    def get_crit_buff_modifier(self):
        if self.crit:
            return self.CRIT_BUFF_MODIFIER
        else:
            return 0
    
        
    def get_physical_vulnerability_multiplier(self):
        if self.phys_vuln:
            return self.PHSICAL_VULNERABILITY_MULTIPLIER
        else:
            return 0
        
    def get_spell_vulnerability_multiplier(self):
        if self.spell_vuln:
            return self.SPELL_VULNERABILITY_MULTIPLIER
        else:
            return 0